// File:    Proyecto.cs
// Author:  bigmaster
// Created: viernes, 22 de noviembre de 2013 1:14:56
// Purpose: Definition of Class Proyecto

using System;
namespace ServiceDeskUNAB.Modelo
{
    public class Proyecto
    {
        private int idProyecto;

        public int IdProyecto
        {
            get { return idProyecto; }
            set { idProyecto = value; }
        }
        private string nombreProyecto;

        public string NombreProyecto
        {
            get { return nombreProyecto; }
            set { nombreProyecto = value; }
        }
        private bool visibilidadProyecto;

        public bool VisibilidadProyecto
        {
            get { return visibilidadProyecto; }
            set { visibilidadProyecto = value; }
        }

        public Proyecto()
        {

        }

        public System.Collections.Generic.List<Proyecto> proyectoRaiz;

        /// <summary>
        /// Property for collection of Proyecto
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<Proyecto> ProyectoRaiz
        {
            get
            {
                if (proyectoRaiz == null)
                    proyectoRaiz = new System.Collections.Generic.List<Proyecto>();
                return proyectoRaiz;
            }
            set
            {
                RemoveAllProyectoRaiz();
                if (value != null)
                {
                    foreach (Proyecto oProyecto in value)
                        AddProyectoRaiz(oProyecto);
                }
            }
        }

        /// <summary>
        /// Add a new Proyecto in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddProyectoRaiz(Proyecto newProyecto)
        {
            if (newProyecto == null)
                return;
            if (this.proyectoRaiz == null)
                this.proyectoRaiz = new System.Collections.Generic.List<Proyecto>();
            if (!this.proyectoRaiz.Contains(newProyecto))
                this.proyectoRaiz.Add(newProyecto);
        }

        /// <summary>
        /// Remove an existing Proyecto from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveProyectoRaiz(Proyecto oldProyecto)
        {
            if (oldProyecto == null)
                return;
            if (this.proyectoRaiz != null)
                if (this.proyectoRaiz.Contains(oldProyecto))
                    this.proyectoRaiz.Remove(oldProyecto);
        }

        /// <summary>
        /// Remove all instances of Proyecto from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllProyectoRaiz()
        {
            if (proyectoRaiz != null)
                proyectoRaiz.Clear();
        }
        public System.Collections.Generic.List<Incidencia> proyecto_Incidencia;

        /// <summary>
        /// Property for collection of Incidencia
        /// </summary>
        /// <pdGenerated>Default opposite class collection property</pdGenerated>
        public System.Collections.Generic.List<Incidencia> Proyecto_Incidencia
        {
            get
            {
                if (proyecto_Incidencia == null)
                    proyecto_Incidencia = new System.Collections.Generic.List<Incidencia>();
                return proyecto_Incidencia;
            }
            set
            {
                RemoveAllProyecto_Incidencia();
                if (value != null)
                {
                    foreach (Incidencia oIncidencia in value)
                        AddProyecto_Incidencia(oIncidencia);
                }
            }
        }

        /// <summary>
        /// Add a new Incidencia in the collection
        /// </summary>
        /// <pdGenerated>Default Add</pdGenerated>
        public void AddProyecto_Incidencia(Incidencia newIncidencia)
        {
            if (newIncidencia == null)
                return;
            if (this.proyecto_Incidencia == null)
                this.proyecto_Incidencia = new System.Collections.Generic.List<Incidencia>();
            if (!this.proyecto_Incidencia.Contains(newIncidencia))
                this.proyecto_Incidencia.Add(newIncidencia);
        }

        /// <summary>
        /// Remove an existing Incidencia from the collection
        /// </summary>
        /// <pdGenerated>Default Remove</pdGenerated>
        public void RemoveProyecto_Incidencia(Incidencia oldIncidencia)
        {
            if (oldIncidencia == null)
                return;
            if (this.proyecto_Incidencia != null)
                if (this.proyecto_Incidencia.Contains(oldIncidencia))
                    this.proyecto_Incidencia.Remove(oldIncidencia);
        }

        /// <summary>
        /// Remove all instances of Incidencia from the collection
        /// </summary>
        /// <pdGenerated>Default removeAll</pdGenerated>
        public void RemoveAllProyecto_Incidencia()
        {
            if (proyecto_Incidencia != null)
                proyecto_Incidencia.Clear();
        }
    }
}